home *** CD-ROM | disk | FTP | other *** search
/ MacGames Sampler / PHT MacGames Bundle.iso / MacSource Folder / Samples from the CD / C and C++ / flight simulator ƒ / scprintf.c < prev   
Text File  |  1988-12-22  |  3KB  |  181 lines

  1. /*
  2. #include <EventMgr.h>
  3. #include <WindowMgr.h>
  4. #include <FileMgr.h>
  5. */
  6. #include <defines.h>
  7. #include "perspect.h"
  8.  
  9. extern    GrafPtr            windManPort;
  10.  
  11. static    long    rtrnAdrs;
  12. static    unsigned    char    buffer[256];
  13.  
  14. tprintf()
  15. {
  16.     asm    {
  17.         move.l    (sp)+,rtrnAdrs
  18.         }
  19.     sprintf(buffer);
  20.     SendPort(buffer, strlen(buffer));
  21.     asm    {
  22.         move.l    rtrnAdrs,a0
  23.         jmp        (a0)
  24.         }
  25. }
  26.  
  27. scprintf()
  28. {
  29.     asm    {
  30.         move.l    (sp)+,rtrnAdrs
  31.         }
  32.     sprintf(buffer);
  33.     My_printf(buffer);
  34.     asm    {
  35.         move.l    rtrnAdrs,a0
  36.         jmp        (a0)
  37.         }
  38. }
  39.  
  40. flprintf()
  41. {
  42.     asm    {
  43.         move.l    (sp)+,rtrnAdrs
  44.         }
  45.     sprintf(buffer);
  46. /*    AppendTempFile(buffer);*/
  47.     asm    {
  48.         move.l    rtrnAdrs,a0
  49.         jmp        (a0)
  50.         }
  51. }
  52.  
  53. static
  54. _My_printf(shwStr)
  55. char    *shwStr;
  56. {
  57.     char    buffer[256];
  58. static    Rect    dispRect = {67, 54, 87, 166};
  59.  
  60.     ClipRect(&dispRect);
  61.     EraseRect(&dispRect);
  62.     MoveTo(dispRect.left + 10, dispRect.bottom - 4);
  63.     strcpy(buffer, shwStr);
  64.     ctop(buffer);
  65.     DrawString(buffer);
  66. }
  67.  
  68. static
  69. My_printf(shwStr)
  70. char    *shwStr;
  71. {
  72.     char    buffer[256];
  73. static    Rect    dispRect = {21, 220, 40, 510};
  74.     GrafPtr    savePort;
  75.  
  76.     GetPort(&savePort);
  77.     SetPort(windManPort);
  78.         ClipRect(&dispRect);
  79.         EraseRect(&dispRect);
  80.         MoveTo(230, 36);
  81.         strcpy(buffer, shwStr);
  82.         ctop(buffer);
  83.         DrawString(buffer);
  84.     SetPort(savePort);
  85. }
  86.  
  87. static    IOParam        portParam;
  88.  
  89. /*** open printer port ***/
  90. OpenSerPort()
  91. {
  92.     portParam.ioCompletion = 0L;
  93.     portParam.ioNamePtr = (StringPtr)("\p.BOut");
  94.     portParam.ioRefNum = 0;
  95.     portParam.ioPermssn = fsWrPerm;
  96.     portParam.ioMisc = 0L;
  97.  
  98.     PBOpen(&portParam, FALSE);
  99. /*    if (portParam.ioResult)
  100.         if (portParam.ioResult EQ -98)
  101.             GenralAlert("\PAppleTalk connected; won't be able to print");
  102.         else
  103.             GenralAlert("\PError opening printer port");
  104. */
  105. }
  106.  
  107. static
  108. OsErr
  109. SendPort(buffer, length)
  110. char    *buffer;
  111. int        length;
  112. {
  113.     portParam.ioBuffer = buffer;
  114.     portParam.ioReqCount = length;
  115.     portParam.ioPosMode = fsAtMark;
  116.  
  117.     PBWrite(&portParam, FALSE);
  118.     buffer[portParam.ioActCount] = '\0';
  119.     return(portParam.ioResult);
  120. }
  121.  
  122.  
  123. #define    KEYMAP        ((long *)0x174)
  124.  
  125. KWait()
  126. {
  127. Boolean    ShiftDown();
  128. Boolean    OptionDown();
  129.  
  130.     if (OptionDown())
  131.         return;
  132.     while(!ShiftDown());
  133.     while(ShiftDown());
  134. }
  135.  
  136. Boolean
  137. ShiftDown()
  138. {
  139.     return(KEYMAP[1] & 1);
  140. }
  141.  
  142. Boolean
  143. OptionDown()
  144. {
  145.     return(KEYMAP[1] & 4);
  146. }
  147.  
  148. Boolean
  149. CommandDown()
  150. {
  151.     return((KEYMAP[1] & 0x8000) ? TRUE:FALSE);
  152. }
  153.  
  154. Boolean
  155. CapsDown()
  156. {
  157.     return(KEYMAP[1] & 2);
  158. }
  159.  
  160. Boolean
  161. CmndPeriod()
  162. {
  163.     EventRecord     keyEvent;
  164.  
  165.     if (GetNextEvent(keyDownMask, &keyEvent))    /* ROM */
  166.         if (keyEvent.modifiers & cmdKey)
  167.             if ((keyEvent.message & charCodeMask) EQ '.')
  168.                 return(TRUE);
  169.  
  170.     return(FALSE);
  171. }
  172.  
  173. /*** has the mouse button been pressed? ***/
  174. Boolean
  175. MousePress()
  176. {
  177.     EventRecord    msEvent;
  178.  
  179.     return(GetNextEvent(mDownMask, &msEvent));
  180. }
  181.